package com.itheima.service.impl;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.itheima.dto.PageTag;
import com.itheima.dto.YddTagDTO;
import com.itheima.entity.YddTag;
import com.itheima.mapper.YddTagMapper;
import com.itheima.result.PageData;
import com.itheima.service.YddTagService;
import com.itheima.vo.YddTagVO;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;

/**
 * @projectName: kafka
 * @package: com.itheima.service.impl
 * @className: YddTagServiceImpl
 * @author: Eric
 * @description: TODO
 * @date: 2023/9/23 19:21
 * @version: 1.0
 */
@Service
@RequiredArgsConstructor
public class YddTagServiceImpl implements YddTagService {
    private final YddTagMapper yddTagMapper;

    @Override
    public PageData pag(PageTag pageTag) {
        PageHelper.startPage(pageTag.getPage(),pageTag.getLimit());
        List<YddTag> yddTagList = yddTagMapper.selectByTagName(pageTag.getTagname());
        PageInfo<YddTag> pageInfo = new PageInfo<>(yddTagList);

        List<YddTagVO> yddTagVOList = new ArrayList<>();
        for (YddTag yddTag : yddTagList) {
            YddTagVO yddTagVO = new YddTagVO();
            BeanUtils.copyProperties(yddTag,yddTagVO);
            yddTagVO.setDefault_data(yddTag.getDefaultData());
            yddTagVOList.add(yddTagVO);
        }
        return new PageData(pageInfo.getTotal(),
                pageInfo.getPages(),
                pageInfo.getPageSize(),
                pageInfo.getPageNum(),
                yddTagVOList);
    }

    @Override
    public List<YddTagVO> queryAllTag() {
        List<YddTag> yddTagList = yddTagMapper.queryAllTag();
        List<YddTagVO> yddTagVOList = new ArrayList<>();
        for (YddTag yddTag : yddTagList) {
            YddTagVO yddTagVO = new YddTagVO();
            BeanUtils.copyProperties(yddTag,yddTagVO);
            yddTagVO.setDefault_data(yddTag.getDefaultData());
            yddTagVOList.add(yddTagVO);
        }
        return yddTagVOList;
    }

    @Override
    public void creatTag(YddTagDTO yddTagDTO) {
        YddTag yddTag = new YddTag();
        yddTag.setTagname(yddTagDTO.getTagname());
        yddTagMapper.creatTag(yddTag);
    }

    @Override
    public void deleteTag(Integer id) {
        yddTagMapper.deleteTagById(id);
    }

    @Override
    public YddTagVO queryTag(Integer id) {
        YddTag yddTag = yddTagMapper.queryTag(id);
        YddTagVO yddTagVO = new YddTagVO();
        BeanUtils.copyProperties(yddTag,yddTagVO);
        yddTagVO.setDefault_data(yddTag.getDefaultData());
        return yddTagVO;
    }

    @Override
    public void updateTag(YddTag yddTag) {
        yddTagMapper.updateTag(yddTag);
    }
}
